<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>The source code</title>
  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  <style type="text/css">
    .highlight { display: block; background-color: #ddd; }
  </style>
  <script type="text/javascript">
    function highlight() {
      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
    }
  </script>
</head>
<body onload="prettyPrint(); highlight();">
  <pre class="prettyprint lang-js">
<span id='Ext-data-SortTypes'>/**
</span> * @class Ext.data.SortTypes
 * @singleton
 * Defines the default sorting (casting?) comparison functions used when sorting data.
 */
Ext.data.SortTypes = {
<span id='Ext-data-SortTypes-method-none'>    /**
</span>     * Default sort that does nothing
     * @param {Mixed} s The value being converted
     * @return {Mixed} The comparison value
     */
    none : function(s){
        return s;
    },
    
<span id='Ext-data-SortTypes-property-stripTagsRE'>    /**
</span>     * The regular expression used to strip tags
     * @type {RegExp}
     * @property
     */
    stripTagsRE : /&lt;\/?[^&gt;]+&gt;/gi,
    
<span id='Ext-data-SortTypes-method-asText'>    /**
</span>     * Strips all HTML tags to sort on text only
     * @param {Mixed} s The value being converted
     * @return {String} The comparison value
     */
    asText : function(s){
        return String(s).replace(this.stripTagsRE, &quot;&quot;);
    },
    
<span id='Ext-data-SortTypes-method-asUCText'>    /**
</span>     * Strips all HTML tags to sort on text only - Case insensitive
     * @param {Mixed} s The value being converted
     * @return {String} The comparison value
     */
    asUCText : function(s){
        return String(s).toUpperCase().replace(this.stripTagsRE, &quot;&quot;);
    },
    
<span id='Ext-data-SortTypes-method-asUCString'>    /**
</span>     * Case insensitive string
     * @param {Mixed} s The value being converted
     * @return {String} The comparison value
     */
    asUCString : function(s) {
    	return String(s).toUpperCase();
    },
    
<span id='Ext-data-SortTypes-method-asDate'>    /**
</span>     * Date sorting
     * @param {Mixed} s The value being converted
     * @return {Number} The comparison value
     */
    asDate : function(s) {
        if(!s){
            return 0;
        }
        if(Ext.isDate(s)){
            return s.getTime();
        }
    	return Date.parse(String(s));
    },
    
<span id='Ext-data-SortTypes-method-asFloat'>    /**
</span>     * Float sorting
     * @param {Mixed} s The value being converted
     * @return {Float} The comparison value
     */
    asFloat : function(s) {
    	var val = parseFloat(String(s).replace(/,/g, &quot;&quot;));
    	return isNaN(val) ? 0 : val;
    },
    
<span id='Ext-data-SortTypes-method-asInt'>    /**
</span>     * Integer sorting
     * @param {Mixed} s The value being converted
     * @return {Number} The comparison value
     */
    asInt : function(s) {
        var val = parseInt(String(s).replace(/,/g, &quot;&quot;), 10);
        return isNaN(val) ? 0 : val;
    }
};</pre>
</body>
</html>
